import ApiClient from '@/api/apiClient';

import type { RequestBody } from 'alova';

/**
 * 设备组态图
 */
export interface DeviceGraph {
  /**
   * 组态图内容 json格式
   */
  content?: string;
  /**
   * 创建人
   */
  createBy?: string;
  /**
   * 创建人id
   */
  createId?: number;
  /**
   * 创建时间
   */
  createTime?: string;
  /**
   * 主键
   */
  id: string;
  /**
   * 是否逻辑删除，0否,其他是
   */
  isDelete?: number;
  /**
   * 组态图名称
   */
  name?: string;
  /**
   * 修改人
   */
  updateBy?: string;
  /**
   * 修改人id
   */
  updateId?: number;
  /**
   * 更新时间
   */
  updateTime?: string;
  /**
   * 乐观锁版本号
   */
  version?: number;
  [property: string]: any;
}

/** 设备组态图列表 */
export const deviceGraphListApi = (data: RequestBody) => {
  return ApiClient.Post<API.ListType<DeviceGraph>>('/manager/configDiagram/page', data, {
    meta: { auth: true },
  });
};
/** 删除设备组态图 */
export const deviceGraphDeleteApi = (data: Merge<RequestBody, { id: string }>) => {
  return ApiClient.Post(`/manager/configDiagram/delete/${data.id}`, data, {
    meta: { auth: true },
  });
};

/** 保存设备组态图 */
export const deviceGraphAddApi = (data: RequestBody) => {
  return ApiClient.Post(`/manager/configDiagram/save`, data, {
    meta: { auth: true },
  });
};

/** 修改设备组态图 */
export const deviceGraphEditApi = (data: RequestBody) => {
  return ApiClient.Post<DeviceGraph>('/manager/configDiagram/update', data, {
    meta: { auth: true },
  });
};

/** 获取设备组态图详情 */
export const deviceGroupDetailApi = (data: { id: number }) => {
  return ApiClient.Get<DeviceGraph>(`/manager/configDiagram/get/${data.id}`, {
    meta: { auth: true },
  });
};
